// subpackage/pages/search/search.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //输入框的值
    searchValueList: [
      // {
      //   id: 1,
      //   text: '搜索出来的结果内容001'
      // },
      // {
      //   id: 2,
      //   text: '搜索出来的结果内容002搜索出来的结果内容002搜索出来的结果内容002'
      // }
    ],
    //延时器id
    timer: null,
    //搜索历史数据
    historyList: []
  },

  /**
   * 输入框事件
  */
  getSearchValue(e) {
    //清除延时器
    clearTimeout(this.data.timer)
    const t = setTimeout(() => {
      if (e.detail !== null && e.detail !== '') {
        //获取搜索结果
        wx.showLoading({
          title: '数据加载中...'
        })
        this.getSearchList(e.detail)
        //保存搜索记录
        this.saveSearchHistory(e.detail)
      }
    }, 500)
    //延时器赋值
    this.setData({
      timer: t
    })
  },

  /**
   * 获取搜索结果
  */
  async getSearchList(value) {
    const data = await wx.p.request({
      url: 'http://127.0.0.1:4314/search/list',
      method: 'get',
      data: {
        value: value
      },
      complete: function () {
        wx.hideLoading()
      }
    })
  },

  /**
   * 携带参数到商品详情页
   * */
  goToShopDetail(e) {
    const shopid = e.currentTarget.dataset['shopid'];
    wx.navigateTo({
      url: '/homepackage/pages/shopdetails/shopdetails?shopid=' + shopid,
    })
  },

  /**
   * 保存搜索记录
  */
  saveSearchHistory(key) {
    //利用set给关键字去重
    const set = new Set(this.data.historyList)
    //删除旧的关键字
    set.delete(key)
    //新增新的关键字
    set.add(key)
    this.setData({
      historyList: Array.from(set)
    })
    //搜索记录存储到本地
    wx.setStorageSync('searchKey', JSON.stringify(this.data.historyList))
  },

  /**
   * 清除所有历史记录
  */
  clearAllHistory() {
    this.setData({
      historyList: []
    })
    //清空本地记录
    wx.setStorageSync('searchKey', '[]')
  },

  /**
   * 删除单个搜索记录
  */
  closeSearchHistory(e) {
    var key = e.currentTarget.dataset['key'];
    var arr = this.data.historyList
    //删除数组中的记录
    this.setData({
      historyList: arr.filter(item => item !== key)
    })
    //删除缓存的记录
    wx.setStorageSync('searchKey', JSON.stringify(arr.filter(item => item !== key)))
  },

  /**
   * 页面加载时加载搜索记录
  */
  onLoad() {
    this.setData({
      historyList: JSON.parse(wx.getStorageSync('searchKey') || '[]')
    })
  },

  /**
   * 点击搜索历史记录跳转到商品列表页面
  */
  goToShopList(e) {
    var key = e.currentTarget.dataset['key'];
    wx.navigateTo({
      url: '/shoppackage/pages/shoplist/shoplist?key=' + key,
    })
  }


})